// 初始化表单权限
export const initFormData: (nodeType: number, forms: any[]) => any = (
  nodeType: number,
  forms: any[]
) => {
  return forms
    .filter((el) => el.config.key || el.key)
    .map((el: any) => {
      const config = el.config || el
      return {
        title: config.title, // 表单项名称
        inputKey: config.key, // 表单项key
        isEdit: nodeType === 0 ? true : false, // 是否可编辑
        isView: nodeType === 0 ? true : false, // 是否可查看
        childs: config.childs ? initFormData(nodeType, config.childs) : null // 子表单权限配置 - 多行表格控件
      }
    })
}

// 更新表单权限
export const updatedFormData: (nodeType: number, forms: any[], oldForms: any[]) => any = (
  nodeType: number,
  forms: any[],
  oldForms: any[] | []
) => {
  return forms
    .filter((el) => el.config.key || el.key)
    .map((el: any) => {
      const old = oldForms.find((item: any) => item.inputKey === el.config.key)
      const oldConfig = old.config || old
      const config = el.config || el
      if (old) {
        return {
          title: oldConfig.title, // 表单项名称
          inputKey: oldConfig.key, // 表单项key
          isEdit: nodeType === 0 ? true : false, // 是否可编辑
          isView: nodeType === 0 ? true : false, // 是否可查看
          childs: config.childs
            ? updatedFormData(nodeType, config.childs, oldConfig.childs)
            : null
        }
      } else {
        return {
          title: config.title, // 表单项名称
          inputKey: config.key, // 表单项key
          isEdit: nodeType === 1 ? true : false, // 是否可编辑
          isView: nodeType === 1 ? true : false, // 是否可查看
          childs: config.childs ? initFormData(nodeType, config.childs) : null
        }
      }
    })
}
